(七)Python绘图基础:Matplotlib绘图 | 您所在的位置:网站首页 › python 长截图 › (七)Python绘图基础:Matplotlib绘图 |
目录 Matplotlib绘图 折线图 绘制一组数据 绘制多组数据 散点图(scatter) 条形图(竖) 条形图(横) 饼图 Matplotlib属性 保存图片 色彩和样式 文字 其他属性 绘制子图 子图-subplot() 子图-subplots() 子图-axes() Matplotlib绘图最著名Python绘图库, 主要用于二维绘图 – 画图质量高 – 方便快捷的绘图模块 绘图API——pyplot模块折线图绘制一组数据代码如下所示: import matplotlib.pyplot as plt plt.plot(range(7),[3, 4, 7, 6, 3, 7, 9]) # 设立X,Y轴坐标,X轴不写也可以默认从零开始 plt.show()运行结果如下所示: 绘制多组数据代码如下所示: import matplotlib.pyplot as plt import numpy as np t = np.arange(0., 2., 0.1) # 生成数据 plt.plot(t, t, t, t+2, t, t**3) # 绘制多组数据 plt.show()运行结果如下所示: 散点图(scatter)代码如下所示: import matplotlib.pyplot as plt plt.scatter(range(7),[3, 4, 7, 6, 3, 7, 9]) # 绘制散点图 plt.show()除了使用scatter函数之外,还可以使用plot函数后加参数'o'来实现,代码如下所示: import matplotlib.pyplot as plt plt.plot(range(7),[3, 4, 7, 6, 3, 7, 9],'o') # 绘制散点图 plt.show()运行结果如下所示: 条形图(竖)代码如下所示: import matplotlib.pyplot as plt plt.bar(range(7),[3, 4, 7, 6, 3, 7, 9]) # 绘制条形图 plt.show()运行结果如下所示: 条形图(横)代码如下所示: import matplotlib.pyplot as plt plt.barh(range(7),[3, 4, 7, 6, 3, 7, 9]) # 绘制横的条形图 plt.savefig('E:\截图\绘图\huitu2.jpg') plt.show()运行结果如下所示: 饼图代码如下所示: import matplotlib.pyplot as plt plt.pie([3, 4, 7, 6, 3, 7, 9], labels=range(7), autopct='%1.2f%%', startangle=90) # 绘制饼图,labels设置标签,autopct设置显示百分比,startangle显示起始角度 plt.savefig('E:\截图\绘图\huitu3.jpg') plt.show()运行结果如下所示: Matplotlib属性Matplotlib可以控制许多的默认属性,本文只举一些属性来介绍; 保存图片可以用savefig()函数来保存绘制好的图片,代码如下所示: import matplotlib.pyplot as plt plt.plot(range(7),[3, 4, 7, 6, 3, 7, 9],"r-.") plt.savefig('E:\截图\绘图\Fui.jpg') # 填保存路径即可 plt.show()色彩和样式符号 b g r c m y k w 颜色 blue green red cyan(青色) magenta(洋红色) yellow black white 线型 '-' '--' '-.' ':' 'None' ' ' '' 描述 实线 长虚线 虚线加点 点虚线 无 无 无 标记 "o" "v" "s" "^" "p" "*" "h" "+" "D" 描述 散点 倒三角 正方形 正三角 五边形 五角星 六边形 加号 菱形 只展示了一部分常用的格式,具体每个色彩和样式就不一一展示,只展示几个色彩样式,代码如下所示: import matplotlib.pyplot as plt plt.plot(range(7),[3, 4, 7, 6, 3, 7, 9],"r*") plt.show()运行结果如下所示: 代码如下所示: import matplotlib.pyplot as plt plt.plot(range(7),[3, 4, 7, 6, 3, 7, 9],"c:") plt.show()运行结果如下所示: 文字可以在图上加标题、横坐标的标签和纵坐标的标签,还可以将数轴上的数字用文字来表示。具体代码如下所示: import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文字体,不然显示不了中文 plt.title('标题') plt.xlabel('X 标签') plt.ylabel('Y 标签') plt.plot( [3, 4, 7, 6]) index_name=['1季度', '2季度', '3季度', '4季度'] # 设置X坐标的标签 plt.xticks(range(4), index_name) # 显示X坐标的标签 plt.savefig('E:\截图\绘图\huitu.jpg') plt.show()运行结果如下所示: 其他属性将简述图的大小、精度、颜色、线型、线宽、图例等等属性,代码如下所示: import matplotlib.pyplot as plt import numpy as np plt.figure(figsize=(8, 6), dpi=100) # 图的大小,还有精度 t = np.arange(0., 2., 0.1) plt.plot(t, t, color='red', linestyle='-', linewidth=3, label='Line 1') # 颜色、线型、线宽、图例的设定 plt.plot(t, t + 2, color='green', linestyle='', marker='*', linewidth=3, label='Line 2') plt.plot(t, t ** 3, color='blue', linestyle='', marker='+', linewidth=3, label='Line 3') plt.legend(loc='upper left') # 图例的位置,可以设为'best',会自动放到最合适的地方 plt.savefig('E:\截图\绘图\huitu1.jpg') plt.show()运行结果如下所示: 绘制子图在Matplotlib中绘图在当前图形(figure)和当前坐标系(axes)中进行,默认在一个编号为1的figure中绘图,可以在一个图的多个区域分别绘图使用subplot()/subplots()函数和axes()函数子图-subplot()在 subplot()里,有三个参数,第一个是有几行,第二个是有几列,第三个是图的编号,也就是第几个,比如plt.subplot(211)的意思就是,有两行,这是第一行第一个图。 代码如下所示: import numpy as np import matplotlib.pyplot as plt x = np.linspace(-np.pi, np.pi, 300) # 产生均匀区间的一组数据 plt.figure() # 默认创建,缺省 plt.subplot(211) # 第一个子图 plt.plot(x, np.sin(x), color='r') plt.subplot(212) # 第二个子图 plt.plot(x, np.cos(x), color='g') plt.savefig('E:\截图\绘图\huitu1.jpg') plt.show()运行结果如下所示: 子图-subplots()相对于subplot来说,subplots使用起来更加灵活,具体代码如下所示: import numpy as np import matplotlib.pyplot as plt x = np.linspace(-np.pi, np.pi, 300) fig, (ax0, ax1) = plt.subplots(2, 1) # 指定子图是2行1列的,函数的第一个返回值是图对象本身,第二个返回值是各子图 # 后续绘图可以直接使用子图对象的plot()方法来实现 ax0.plot(x, np.sin(x), color='r') ax0.set_title('subplot1') plt.subplots_adjust(hspace=0.5) # hspace表示垂直方向距离,wspace表示水平方向距离 ax1.plot(x, np.cos(x), color='g') ax1.set_title('subplot2') plt.savefig('E:\截图\绘图\huitu4.jpg') plt.show()运行结果如下所示: 子图-axes()相对于subplot()/subplots()函数来说,axes()函数的图是重叠在一起的,所以要对其参数进行设定,具体代码如下所示: axes([left,bottom,width,height]) 参数范围为(0,1) import numpy as np import matplotlib.pyplot as plt x = np.linspace(-np.pi, np.pi, 300) plt.axes([.1, .1, 0.8, 0.8]) # 设置到边框的距离 plt.plot(x, np.sin(x), color='r') plt.axes([0.3, 0.15, 0.4, 0.3]) # 设置到边框的距离 plt.plot(x, np.cos(x), color='g') plt.savefig('E:\截图\绘图\huitu5.jpg') plt.show()运行结果如下所示: Pandas绘图基础在日后进行补充 |
CopyRight 2018-2019 实验室设备网 版权所有 |